package org.example.judge_pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("tb_problem")
public class Problem implements Serializable {
    /**
     * 题目表主键
     */
    private java.lang.String id;

    /**
     * 题目编码
     */
    private Integer code;
    /**
     * 题目标题
     */
    private java.lang.String title;

    /**
     * 题目类型，0默认，1文档方式
     */
    private java.lang.Integer type;

    /**
     * type=1,题目文档描述
     */
    private java.lang.String fileId;

    /**
     * 时间限制(ms)，默认为c/c++限制,其它语言为2倍
     */
    private java.lang.Integer timeLimit;

    /**
     * 空间限制(mb)，默认为c/c++限制,其它语言为2倍
     */
    private java.lang.Integer memoryLimit;

    /**
     * 栈限制(mb)，默认为128
     */
    private java.lang.Integer stackLimit;

    /**
     * 内容描述
     */
    private java.lang.String description;

    /**
     * 输入描述
     */
    private java.lang.String input;

    /**
     * 输出描述
     */
    private java.lang.String output;

    /**
     * 困难等级，0~5从低到高
     */
    private java.lang.Integer difficulty;

    /**
     * 0公开的，1私密的，2比赛中
     */
    private java.lang.Integer auth;

    /**
     * 判题模式，0默认，1交互
     */
    private java.lang.Integer mode;

    /**
     * 交互判题程序用到的代码
     */
    private java.lang.String spjCode;

    /**
     * 交互判题程序用到的语言
     */
    private java.lang.String spjLanguage;

    /**
     * 修改题目信息的用户
     */
    private java.lang.String updateUser;

    /**
     * 题目信息修改时间
     */
    private Date updateTime;

    /**
     * 题目标签
     */
    @TableField(exist = false)
    private List<Tag> tags;

    /**
     * 提交总数
     */
    @TableField(exist = false)
    private Integer submitSum;

    /**
     * 通过数量
     */
    @TableField(exist = false)
    private Integer submited;

    /**
     * -1 未提交
     * 0 通过 ，1 未通过
     */
    @TableField(exist = false)
    private Integer status = -1;

}
